There are a variety of different types of battery packs configured to power various types of electronic devices. However, the charging characteristics for the various battery packs differ (e.g., a battery pack that includes three lithium ion cells needs to be charged to a different level than a lithium ion battery that contains four cells). Thus, if a four-cell battery pack is charged to the level required for a three-cell battery pack, the four-cell battery pack will be under-charged, which will generally cause an undesirable shortening of the useful life of the battery pack. Additionally, the physical configuration of a battery charging system (and any device the charging system may be disposed in, such as a notebook computer or other type of electronic device) and the physical configuration of the battery pack itself introduce errors into the battery charging process. For example, contact resistance between the charging system and the battery pack, discrete components that lay between the charging system and terminals of the battery pack, and distributed impedances present in voltage sensing and charging circuits cause the charging system to charge the battery pack to a voltage lower than the maximum allowed for the battery pack.